Enterprise computer application development continues to be costly, labor intensive, high risk, and plagued with defects and qualified successes. These conditions are due in large part to endemic ambiguity and imprecision in (1) business requirements elicitation; (2) transforming business requirements into actionable specifications for data and software; (3) partitioning application software into manageable yet re-combinable executables; and (4) managing evolutionary change in both requirements specifications and technology platforms.
These problems are interrelated and mutually exacerbating. For example, ambiguity in business requirements results in a higher rate of change, which escalates the problems inherent in managing changes. A key contributing factor in these problems is the absence of methods and supporting tools for precisely, comprehensively and transparently defining the inevitable complex chains of interdependency that exist between data and software.
Known, attempted solutions include: model-driven development; automated code generation; agile and iterative development methods; business rules; the relational model of data; object-oriented methods; enterprise architecture; and service-oriented architecture. These disparate point solutions have achieved only partial success. However, methods and tools that synthesize their capabilities to enable full realization of their potential benefits are lacking, and no solution directly addresses the definition and management of data and software interdependencies.
While automated generation of executables from technology-neutral models of business requirements continues to be actively pursued as a way of alleviating problems with conventional systems, the widespread emphasis on graphical process models makes the required level of specificity persistently elusive.
Accordingly, there exists a need in the art to overcome the deficiencies and limitations described hereinabove.